package com.ibeeking.found.open.b.rest.service;

import com.dingtalk.service.DingTalkService;
import com.ibeeking.found.common.entity.open.OpenAuthDTO;
import com.ibeeking.found.common.entity.open.OpenConfigDTO;
import me.chanjar.weixin.cp.api.WxCpService;
import me.chanjar.weixin.cp.tp.service.WxCpTpService;
import me.chanjar.weixin.open.api.WxOpenMaService;
import me.chanjar.weixin.open.api.WxOpenMpService;
import me.chanjar.weixin.open.api.WxOpenService;


public interface IOpenService {
    /**
     * 查询组件配置信息
     */
    OpenConfigDTO queryWxOpenConfigByComponentAppId(String componentAppId);
    /**
     * 获取缺省开放平台服务，基于nacos配置参数
     */
    WxOpenService getDefaultWxOpenService();
    /**
     * 获取开放平台服务，基于后台配置参数
     */
    WxOpenService getWxOpenService(String componentAppId);
    /**
     * 获取开放平台公众号服务
     */
    WxOpenMpService getWxOpenMpService(String componentAppId, String appId);
    /**
     * 获取开放平台小程序服务
     */
    WxOpenMaService getWxOpenMaService(String componentAppId, String appId);
    /**
     * 获取企业微信自建应用服务
     */
    WxCpService getDefaultWxCpService();
    /**
     * 获取企业微信三方应用服务
     */
    WxCpTpService getDefaultWxCpTpService();
    /**
     * 获取企业微信三方应用服务
     */
    WxCpTpService getDefaultWxCpDkService();
    /**
     * 获取企业微信通讯录服务
     */
    WxCpTpService getDefaultWxCpContactService();
    /**
     * 获取企业微信三方应用服务
     */
    WxCpTpService getAuthedWxCpTpService(Long tenantId, Integer configType, Integer configSubType, Integer appType);
    /**
     * 获取钉钉服务
     */
    DingTalkService getDefaultDingTalkService();
}
